#pragma once
#include "DrumInstrument.h"
#include "WaveInstrument.h"
#include "InstrumentFactory.h"
#include <vector>
#include <map>
class CDrumFactory :
	public CInstrumentFactory
{
public:
	enum mInstruments{ Wave, Synth };

	CDrumFactory(void);
	~CDrumFactory(void);

	void SetNote( CNote *aNote );
	CInstrument *CreateInstrument( void );
	CDrumInstrument *CreateSynthInstrument( void );
	CWaveInstrument *CreateWaveInstrument( void );

	// Loads the wave files to be played for the drumkit
	bool LoadFile( const WCHAR *name );

private:
	// Loading in the wave files for use on the drum
	std::map< CString , std::vector<short> > mWaveMap;

	// Used to determine if a not is to be a wave or synth object
	CString mNextFileName;
	mInstruments mNextInstrument;
};

